When a network failure or degradation occurs, there may be a very large amount of alarms, e.g., thousands or tens of thousands of alarms and/or events, being generated by various network devices and/or monitoring systems. The alarms and/or events may be sent to one or more network monitoring applications. Unfortunately, many of the alarms and/or events may be related to a single root cause failure. However, correlating such large number of alarms and/or events to their root causes is computationally expensive and requires a significant amount of application development effort.